// api/member/auth.ts
import request from '@/api/request';

// 可选：抽离登录相关接口的默认 custom 配置，避免重复代码
const defaultLoginCustomConfig = {
  showSuccess: true,
  loadingMsg: '登录中',
  successMsg: '登录成功',
};

const AuthUtil = {
  // 1. 保留 PC 端用得到的核心接口
  // 手机 + 密码登录
  login: (data) => {
    return request({
      url: '/member/auth/login',
      method: 'POST',
      data,
      custom: defaultLoginCustomConfig, // 复用默认配置
    });
  },

  // 手机 + 验证码登录（你的登录组件会用到这个！）
  smsLogin: (data) => {
    return request({
      url: '/member/auth/sms-login',
      method: 'POST',
      data,
      custom: defaultLoginCustomConfig, // 复用默认配置
    });
  },

  // 发送手机验证码（你的登录组件会用到这个！）
  sendSmsCode: (mobile, scene) => {
    return request({
      url: '/member/auth/send-sms-code',
      method: 'POST',
      data: { mobile, scene },
      custom: {
        loadingMsg: '发送中',
        showSuccess: true,
        successMsg: '验证码发送成功', // 优化文案，更精准
      },
    });
  },

  // 登出系统（PC 端需保留，登出时调用后端接口清空 token）
  logout: () => {
    return request({
      url: '/member/auth/logout',
      method: 'POST',
      custom: {
        showLoading: true,
        loadingMsg: '退出中',
        showSuccess: true,
        successMsg: '已成功退出',
      },
    });
  },

  // 刷新令牌（核心！配合 request 拦截器的 token 刷新逻辑）
  refreshToken: (refreshToken) => {
    return request({
      url: '/member/auth/refresh-token',
      method: 'POST',
      params: { refreshToken },
      custom: {
        showLoading: false, // 后台自动刷新，不显示 loading
        showError: false,   // 刷新失败由 request 拦截器统一处理（如强制登出）
      },
    });
  },

  // 2. 注释/删除 PC 端用不到的 uniapp 专属接口
  // // 微信小程序一键登录（PC 端无需）
  // weixinMiniAppLogin: (phoneCode, loginCode, state) => {
  //   return request({
  //     url: '/member/auth/weixin-mini-app-login',
  //     method: 'POST',
  //     data: { phoneCode, loginCode, state },
  //     custom: defaultLoginCustomConfig,
  //   });
  // },

  // // 微信 JS SDK 签名（PC 端无需）
  // createWeixinMpJsapiSignature: (url) => {
  //   return request({
  //     url: '/member/auth/create-weixin-jsapi-signature',
  //     method: 'POST',
  //     params: { url },
  //     custom: { showError: false, showLoading: false },
  //   });
  // },
};

export default AuthUtil;